package com.sky.service;

import com.sky.dto.OrdersConfirmDTO;
import com.sky.dto.OrdersPageQueryDTO;
import com.sky.dto.OrdersPaymentDTO;
import com.sky.dto.OrdersSubmitDTO;
import com.sky.entity.Orders;
import com.sky.result.PageResult;
import com.sky.vo.OrderStatisticsVO;
import com.sky.vo.OrderSubmitVO;

/**
 * ClassName: OrderService
 * Package:
 * Description
 * 订单接口
 * @Author xw
 * @Create 2023/11/25 18:13
 */
public interface OrderService {

    /**
     * 用户下单
     */
    OrderSubmitVO PostSubmit(OrdersSubmitDTO ordersSubmitDTO);

    /**
     * 订单支付（阉割版修改状态）
     *
     * @param ordersPaymentDTO
     * @return
     */

    String payment(OrdersPaymentDTO ordersPaymentDTO);

    /**
     * 历史订单查询
     */
    PageResult historyOrders(int page, int pageSize, Integer status);

    /**
     * 查询订单详情
     */
    Orders orderDetailID(Integer id);

    /**
     * 取消订单
     * */
    void cancelId(Long id);

    /**
     * 再来一单
     */
    void repetitionId(Long id);


    /*-----------------------------管理端 订单------------------------------------*/
    /**
     * 订单搜索
     * */
    PageResult PutCancel(OrdersPageQueryDTO ordersPageQueryDTO);

    /**
     * 各个状态的订单数量统计
     * */
    OrderStatisticsVO Statistics();

    /**
     * 接单、拒单、取消订单、派送订单、完成订单
     * */
    void update(Orders orders);

    /**
     * 催单
     * */
    void reminder(Long id);
}
